Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


vendor/rns_filesync/packaging/docker-test/test-systemd.sh f89f91e267d8079e6dec86fa9d3139ddbe7f64ce (f89f91e2) Text, 2.06 KB

T8b949e#!/bin/sh
T8b949e# Test systemd unit inside a running systemd container.
Tffa657set -eu
. /test/common-setup.sh

install -m T79c0ff644 /packaging/sysusers.d/rns-filesync.conf /usr/lib/sysusers.d/ T79c0ff2>/dev/null Tff7b72|| Tffa657true
install -m T79c0ff644 /packaging/tmpfiles.d/rns-filesync.conf /usr/lib/tmpfiles.d/ T79c0ff2>/dev/null Tff7b72|| Tffa657true
systemd-sysusers Tff7b72|| Tffa657true
systemd-tmpfiles --create Tff7b72|| Tffa657true

install -m T79c0ff644 /packaging/systemd/rns-filesync.service /etc/systemd/system/rns-filesync.service
install -m T79c0ff644 /packaging/systemd/rns-filesync.user.service /tmp/rns-filesync.user.service

Tffa657echo Ta5d6ff"==> systemd-analyze verify (system unit)"
T8b949e# Documentation=man: fails verify when man page is not installed in the image.
cp /etc/systemd/system/rns-filesync.service /tmp/rns-filesync.verify.service
sed -i Ta5d6ff'/^Documentation=/d' /tmp/rns-filesync.verify.service
systemd-analyze verify /tmp/rns-filesync.verify.service

Tffa657echo Ta5d6ff"==> check user unit file parses"
grep -q Ta5d6ff'ExecStart=' /tmp/rns-filesync.user.service
grep -q Ta5d6ff'NoNewPrivileges=true' /tmp/rns-filesync.user.service

Tffa657echo Ta5d6ff"==> systemctl enable and start"
systemctl daemon-reload
systemctl Tffa657enable rns-filesync.service
systemctl start rns-filesync.service
sleep T79c0ff4
systemctl --no-pager --full status rns-filesync.service Tff7b72|| Tffa657true
Tff7b72if ! systemctl is-active --quiet rns-filesync.serviceTb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"WARN: systemctl start did not reach active (common in nested cgroup docker)"
Tffa657echo Ta5d6ff"==> fallback: start ExecStart as service user"
su -s /bin/sh -c Tffea00\
Ta5d6ff'exec /usr/bin/rns-filesync --config /var/lib/rns-filesync/config --rnsconfig /var/lib/rns-filesync/reticulum -d /var/lib/rns-filesync/sync --no-repl -q' Tffea00\
rns-filesync Tb4b4b4&
sleep T79c0ff1
Te6edf3fs_pidTff7b72=Ta5d6ff"Tff7b72$(pgrep -u rns-filesync -f Ta5d6ff'/usr/bin/rns-filesync' Tb4b4b4| head -n1 Tff7b72|| Tffa657trueTff7b72)Ta5d6ff"
Tff7b72if Tff7b72[ -z Ta5d6ff"Te6edf3$fs_pidTa5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"FAIL: rns-filesync not running as rns-filesync"
ps aux Tff7b72|| Tffa657true
Tffa657exit T79c0ff1
Tff7b72fi
/test/assert-running.sh Ta5d6ff"Te6edf3$fs_pidTa5d6ff" rns-filesync
Tff7b72else
Tffa657echo Ta5d6ff"==> active via systemd"
sleep T79c0ff2
systemctl is-active rns-filesync.service Tb4b4b4| grep -qx active
systemctl stop rns-filesync.service
Tff7b72fi

Tffa657echo Ta5d6ff"PASS: systemd"


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────